<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // var 变量名 = 字面量;
        // es6 新增两个 关键词 

        // let  变量    
        // const 常量  (不变的量)


        // var  和  let  const 的区别? 

        // 1.预解析 
        // var 变量 预解析  
        // let 和 const 不预解析  所以 必须 是先声明后使用

        // 2重复变量名 
        // var 变量名   允许重复 
        // let const   不允许重名 

        // 块级作用域  
        // var 没有块级作用域     只有函数能限制 它
        // let const 有块级作用域  
        // 任何一个 {} 都会限制变量的的使用范围   

        
        // console.log(num); // undefined    因为var 涉及到预解析  
        // var num = 100;
        // console.log(num); // 100


        
        // console.log(num1); //报错  必须先声明 后使用 
        // let num1 = 100;
        // console.log(num1); // 100

 
        // console.log(num1); //报错  必须先声明 后使用 
        // const num1 = 100;
        // console.log(num1); // 100


        // var  num1 = 100
        // var  num1 = 1000;

        // console.log(num1);

        // let  num1 = 100
        // let  num1 = 1000;
        // // 报错 
        // //Uncaught SyntaxError: Identifier 'num1' has already been declared (at 07es6定义变量.html:52:14)

        // console.log(num1);
    </script>
</body>
</html>